package com.coollang.smartbra.choosephoto;

import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.net.Uri;
import android.provider.MediaStore;
import android.util.Log;

import com.coollang.smartbra.R;
import com.coollang.smartbra.views.CloseUtils;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

/**
 * 
 * 作者：陈冬冬
 * 
 * 说明：处理图片的工具类
 * 
 * 时间：2015-9-1 下午5:18:55
 * 
 */
public class DealPictureUtils {
	/**
	 * 裁剪图片方法实现
	 * 
	 * @param uri
	 */
	public static void startPhotoZoom(Activity activity,Uri uri,int requestCode) {
		Log.e("DealPictureUtils", "开始--------");
		Intent intent = new Intent("com.android.camera.action.CROP");
		intent.setDataAndType(uri, "image/*");
		// 设置裁剪
		intent.putExtra("crop", "true");
		// aspectX aspectY 是宽高的比例
		intent.putExtra("aspectX", 1);
		intent.putExtra("aspectY", 1);
		// outputX outputY 是裁剪图片宽高
		intent.putExtra("outputX", 340);
		intent.putExtra("outputY", 340);
		// 必须要有一下设置，否则有的手机报错：无法加载该图片
		intent.putExtra("scale", true);
		intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
		intent.putExtra("outputFormat", Bitmap.CompressFormat.JPEG.toString());
		intent.putExtra("noFaceDetection", true);

		intent.putExtra("return-data", true);
		activity.startActivityForResult(intent, requestCode);
		activity.overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_right);
	}
	/**
	 * 复制图片
	 * @param srcFile 源图片的文件
	 * @param targetFile 目标图片的文件
	 * @return
	 */
	public static File copyFile(File srcFile, File targetFile) {
		// 2.建立管道
		OutputStream os = null;
		InputStream is = null;
		try {
			os = new FileOutputStream(targetFile);
			is = new FileInputStream(srcFile);
			// 3.读取操作
			// 先建立缓冲区,为1024个字节大小
			byte[] b = new byte[1024];
			int len = 0;
			// 采用循环的方式读取文件的内容
			while ((len = is.read(b)) != -1) {
				os.write(b, 0, len);
			}
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			// 一般先开的后关
			try {
				if (os != null)
					os.close();
			} catch (IOException e) {
				e.printStackTrace();
			} finally {
				CloseUtils.closeQuiety(is);
			}
		}
		
		return targetFile;
	}
}
